/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mvc.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import mvc.modelos.SemilleroTallerGrupoRepresentativo;

/**
 *
 * @author pezcado
 */
public class SemilleroTallerGrupoRepresentativoDAO implements IDAO<SemilleroTallerGrupoRepresentativo> {
    
    private PreparedStatement consultar;
    private PreparedStatement insertar;
    private PreparedStatement modificar;
    private PreparedStatement eliminar;
    private PreparedStatement listar;
    private Model model;

    public SemilleroTallerGrupoRepresentativo consultar(int codigo) throws SQLException {
        model= Model.getInstance();
        String sql="select codigo, horario_codigo, nombre, tipo, Director_De_Grupo_identificacion, id, estado, descripcion from "
                + "SemilleroTaller_GrupoRepresentativo where codigo="+codigo;
        consultar=model.getCon().prepareStatement(sql);
        ResultSet resultSet= consultar.executeQuery();
        SemilleroTallerGrupoRepresentativo semilleroTallerGrupoRepresentativo= new SemilleroTallerGrupoRepresentativo();
            
        try{
            resultSet.next();
            
            semilleroTallerGrupoRepresentativo.setCodigo(resultSet.getInt("codigo"));
            semilleroTallerGrupoRepresentativo.setHorarioCodigo(resultSet.getInt("horario_codigo"));
            semilleroTallerGrupoRepresentativo.setNombre(resultSet.getString("nombre"));
            semilleroTallerGrupoRepresentativo.setTipo(resultSet.getString("tipo"));
            semilleroTallerGrupoRepresentativo.setDirectorGrupoIdentificacion(resultSet.getInt("Director_De_Grupo_identificacion"));
            semilleroTallerGrupoRepresentativo.setId(resultSet.getInt("id"));
            semilleroTallerGrupoRepresentativo.setEstado(resultSet.getString("estado"));
            semilleroTallerGrupoRepresentativo.setDescripcion("descripcion");
            
            //return semilleroTallerGrupoRepresentativo;
        }catch(Exception e){
            
        }
        return semilleroTallerGrupoRepresentativo;
    }
    
     // consultar por nombre la tabla Persona
    public SemilleroTallerGrupoRepresentativo consultar(String nombre) throws SQLException {
        model= Model.getInstance();
        consultar = model.getCon().prepareStatement("select * from SemilleroTaller_GrupoRepresentativo where lower(nombre) LIKE ?;");      // defines la consulta
        consultar.setString(1, "%"+nombre+"%");  // seteas el valor cambiante en la consulta
        ResultSet resultSet= consultar.executeQuery(); // ejecutas y obtienes los registros, pero en un objeto que no sabes maneajar
        SemilleroTallerGrupoRepresentativo semilleroTallerGrupoRepresentativo= new SemilleroTallerGrupoRepresentativo(); // creas una nueva persona para saber o mas bien para convertir ese registro que desconoces
        
        try{
            resultSet.next();
            
            semilleroTallerGrupoRepresentativo.setCodigo(resultSet.getInt("codigo"));
            semilleroTallerGrupoRepresentativo.setHorarioCodigo(resultSet.getInt("horario_codigo"));
            semilleroTallerGrupoRepresentativo.setNombre(resultSet.getString("nombre"));
            semilleroTallerGrupoRepresentativo.setTipo(resultSet.getString("tipo"));
            semilleroTallerGrupoRepresentativo.setDirectorGrupoIdentificacion(resultSet.getInt("Director_De_Grupo_identificacion"));
            semilleroTallerGrupoRepresentativo.setId(resultSet.getInt("id"));
            semilleroTallerGrupoRepresentativo.setEstado(resultSet.getString("estado"));
            semilleroTallerGrupoRepresentativo.setDescripcion(resultSet.getString("descripcion"));
            
        }catch(Exception e){
            
        }
            
        return semilleroTallerGrupoRepresentativo; // si todo salio bien retornas a la persona tal y como la setiastes entoncs mira,
    }

    public void insertar(SemilleroTallerGrupoRepresentativo IDAO) throws SQLException {
        model= Model.getInstance();
        if(insertar==null){
            String sql="insert into SemilleroTaller_GrupoRepresentativo values(?,?,?,?,?,?,?,?)";
            insertar= model.getCon().prepareStatement(sql);
        }
        insertar.setInt(1, IDAO.getCodigo());
        insertar.setInt(2, IDAO.getHorarioCodigo());
        insertar.setString(3, IDAO.getNombre());
        insertar.setString(4, IDAO.getTipo());
        insertar.setInt(5, IDAO.getDirectorGrupoIdentificacion());
        insertar.setInt(6, IDAO.getId());
        insertar.setString(7, IDAO.getEstado());
        insertar.setString(8, IDAO.getDescripcion());
        
        insertar.executeUpdate();
    }

    public void modificar(SemilleroTallerGrupoRepresentativo IDAO) throws SQLException {
        model= Model.getInstance();
        String sql="update from SemilleroTaller_GrupoRepresentativo set"
                + "nombre='"+IDAO.getNombre()+"',"
                + "tipo='"+IDAO.getTipo()+"',"
                //+ "Director_De_Grupo_Identificacion="+IDAO.getDirectorGrupoIdentificacion()+","
                //+ "id="+IDAO.getId()+","
                + "estado='"+IDAO.getEstado()+"',"
                + "descripcion='"+IDAO.getDescripcion()+"',"
                + "where codigo="+IDAO.getCodigo();
        modificar=model.getCon().prepareStatement(sql);
        modificar.executeUpdate();
    }

    public void eliminar(SemilleroTallerGrupoRepresentativo IDAO) throws SQLException {
        model= Model.getInstance();
        String sql="delete from SemilleroTaller_GrupoRepresentativo where codigo="+IDAO.getCodigo();
        eliminar=model.getCon().prepareStatement(sql);
        eliminar.executeUpdate();
    }

    public LinkedList<SemilleroTallerGrupoRepresentativo> listar() throws SQLException {
        model.getInstance();
        LinkedList<SemilleroTallerGrupoRepresentativo> listaSemillerosTalleresGrupoRepresentativos=
                new LinkedList<SemilleroTallerGrupoRepresentativo>();
        String sql="select codigo, horario_codigo, nombre, tipo, Director_De_Grupo_identificacion, id, estado, descripcion from "
                + "SemilleroTaller_GrupoRepresentativo";
        listar= model.getCon().prepareStatement(sql);
        ResultSet resultSet= listar.executeQuery();
        while(resultSet.next()){
            SemilleroTallerGrupoRepresentativo semilleroTallerGrupoRepresentativo= 
                    new SemilleroTallerGrupoRepresentativo();
            semilleroTallerGrupoRepresentativo.setCodigo(resultSet.getInt("codigo"));
            semilleroTallerGrupoRepresentativo.setHorarioCodigo(resultSet.getInt("horario_codigo"));
            semilleroTallerGrupoRepresentativo.setNombre(resultSet.getString("nombre"));
            semilleroTallerGrupoRepresentativo.setTipo(resultSet.getString("tipo"));
            semilleroTallerGrupoRepresentativo.setDirectorGrupoIdentificacion(resultSet.getInt("Director_De_Grupo_Identificacion"));
            semilleroTallerGrupoRepresentativo.setId(resultSet.getInt("id"));
            semilleroTallerGrupoRepresentativo.setEstado(resultSet.getString("estado"));
            semilleroTallerGrupoRepresentativo.setDescripcion(resultSet.getString("descripcion"));
            listaSemillerosTalleresGrupoRepresentativos.add(semilleroTallerGrupoRepresentativo);
        
        }
        
        return listaSemillerosTalleresGrupoRepresentativos;
    }
    
}
